

#  file = open(path, encoding='gb18030'）
# 
    # try:
    #     with open(filepath, "r",encoding="utf-8") as fp:
    #         # string=fp.read()


import codecs
import sys
import time


def check_and_move_file(src,dst):
    # create_file_with_directory()
    check_and_create_file_parent_dir(dst)
    shutil.move(src,dst)

def read_file(filepath,encoding="utf-8"):
    try:
        with open(filepath, "r",encoding=encoding) as fp:
            string=fp.read()
            return string
    except Exception as e:
        print(e)
        print("filepath")
        print(filepath)
        return None


def read_file_get_file(filepath,encoding="utf-8"):
    try:
        with open(filepath, "r",encoding=encoding) as fp:
            return fp
            # string=fp.read()
            # return string
    except Exception as e:
        print(e)
        print("filepath")
        print(filepath)
        return None

"""
st_mode: inode 保护模式
st_ino: inode 节点号。
st_dev: inode 驻留的设备。
st_nlink: inode 的链接数。
st_uid: 所有者的用户ID。
st_gid: 所有者的组ID。
st_size: 普通文件以字节为单位的大小；包含等待某些特殊文件的数据。
st_atime: 上次访问的时间。
st_mtime: 最后一次修改的时间。
st_ctime: 由操作系统报告的”ctime”。在某些系统上（如Unix）是最新的元数据更改的时间，在其它系统上（如Windows）是创建时间（详细信息参见平台的文档）。
————————————————
版权声明：本文为CSDN博主「月尽天明_」的原创文章，遵循CC 4.0 BY-SA版权协议，转载请附上原文出处链接及本声明。
原文链接：https://blog.csdn.net/huiyanshizhu/article/details/81277555
"""
def show_time(time_int):
    # time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(test_stat.st_mtime))
    return time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time_int))
#     python 查看、修改文件属性_月尽天明_的博客-CSDN博客_python查看文件属性
# https://blog.csdn.net/huiyanshizhu/article/details/81277555

import os
# import string_util
from . import string_util
def decimal_places(num, places=2):
    return f'%.{places}f' %(num)

def show_stat_of_path(path):
    stat=os.stat(path)
    last_modify_time=show_time(stat.st_mtime)
    # last_modify_time=show_time(stat.st_uid)
    # s=show_time(stat.st_size)
    print("last_modify_time",last_modify_time)
    # st_ctime
    create_time=show_time(stat.st_ctime)
    print("create_time",create_time)
    size=stat.st_size
    # print(size,"",size/1000,"M",size/1000/1000,"G")

    # string_util.po
    string_util.decimal_places(size)
    # 小数点2位数 python str  
    print(string_util.decimal_places(size),"B, ",
          string_util.decimal_places(size/1000) ,"K,",
          string_util.decimal_places(size/1000/1000),"M,",
         string_util.decimal_places(size/1000/1000/1000) ,"G,")
    # print(size,"B",size/1000,"K",size/1000/1000,"M",size/1000/1000/1000,"G")

import pprint
def look_front(filePath,front_idx=300):
    with open(filePath, "r",encoding="utf-8") as f:
        # data=f.read(300)
        data=f.read(front_idx)
    pprint.pprint(data)

def help_output(help_element,filename = 'help.txt'):
    # filename = 'help.txt'

    stdout = sys.stdout
    out_file = open(filename, 'w+',encoding='utf-8')
    sys.stdout = out_file

    help(help_element)
    out_file.flush()

    out_file.close()
    sys.stdout = stdout
# srcfile 需要复制、移动的文件   
# dstpath 目的地址


import csv

import pandas as pd

# 从一个路径 获取文件名 pytho 

def getAllFilesOfWalk(dir):
    """使用listdir循环遍历"""
    if not os.path.isdir(dir):
        print (dir)
        return
    dirlist = os.walk(dir)
    # print("dirlist")
    # print(dirlist)
    abs_path_list=[]
    for root, dirs, files in dirlist:
        for file in files:
            # if file == className+'.java':
            if "考试" in file:

                abs_path=os.path.join(root,file)
                # print(abs_path)
                # os.system('idea64 '+abs_path)
                abs_path_list.append(abs_path)

                # file_path_lst.append(abs_path)
    return abs_path_list


# def dd(records):
#     df=pd.DataFrame.from_records(records)
#  数据列名
def to_csv(datas,file_name,encoding='utf-8-sig',mode='w'):
    # header = ['name', 'age'],
    # # header = ['name', 'age'] #数据列名
    # datas = [{'name': 'Tony', 'age': 17},
    #         {'name': '李华', 'age': 21}] # 字典数据
    # python 写出 csv 某几列 
    # dict 的列表转化为 dateframe
    header=datas[0].keys()
    # pd.DataFrame.from_records(data)
# 
    # test.csv表示如果在当前目录下没有此文件的话，则创建一个csv文件
    # a表示以“追加”的形式写入，如果是“w”的话，表示在写入之前会清空原文件中的数据
    # newline是数据之间不加空行
    # encoding='utf-8'表示编码格式为utf-8，如果不希望在excel中打开csv文件出现中文乱码的话，将其去掉不写也行。
    with open(file_name,mode= mode, newline='',encoding=encoding) as f: 
        # f.write(codecs.BOM_UTF8)
        writer = csv.DictWriter(f,fieldnames=header) # 提前预览列名，当下面代码写入数据时，会将其一一对应。
        # writer.write(codecs.BOM_UTF8)
        writer.writeheader()  # 写入列名
        
        writer.writerows(datas) # 写入数据


import os
import shutil
# from glob import glob

# "D:\好活.txt"
 
def move_file(srcfile,dstpath):                       # 移动函数
    if not os.path.isfile(srcfile):
        print ("%s not exist!"%(srcfile))
    else:
        fpath,fname=os.path.split(srcfile)             # 分离文件名和路径
        if not os.path.exists(dstpath):
            os.makedirs(dstpath)                       # 创建路径
        abs_dst_path=os.path.join(dstpath,fname)
        # shutil.move(srcfile, dstpath + fname)          # 移动文件
        shutil.move(srcfile,abs_dst_path)  
        # print ("move %s -> %s"%(srcfile, dstpath + fname))
        print ("move %s -> %s"%(srcfile, abs_dst_path))

 
def move_file_no_add_dir(srcfile,dstpath):                       # 移动函数
    if not os.path.isfile(srcfile):
        print ("%s not exist!"%(srcfile))
    else:
        fpath,fname=os.path.split(srcfile)             # 分离文件名和路径
        if not os.path.exists(dstpath):
            os.makedirs(dstpath)                       # 创建路径
        abs_dst_path=os.path.join(dstpath,fname)
        # shutil.move(srcfile, dstpath + fname)          # 移动文件
        shutil.move(srcfile,abs_dst_path)  
        # print ("move %s -> %s"%(srcfile, dstpath + fname))
        print ("move %s -> %s"%(srcfile, abs_dst_path))
 
# src_dir = './'
# dst_dir = './move/'                                    # 目的路径记得加斜杠
# src_file_list = glob(src_dir + '*')                    # glob获得路径下所有文件，可根据需要修改
# for srcfile in src_file_list:
#     mymovefile(srcfile, dst_dir)                       # 移动文件

def show_stat(stat):
    last_modify_time=show_time(stat.st_mtime)
    # last_modify_time=show_time(stat.st_uid)
    # s=show_time(stat.st_size)
    print("last_modify_time",last_modify_time)
    size=stat.st_size
    # print(size,"",size/1000,"M",size/1000/1000,"G")
    print(size,"B",size/1000,"K",size/1000/1000,"M",size/1000/1000/1000,"G")
    # st_size=250167437



encoding_list=['utf-8','gbk','gb18030',]


def read_file_try(filepath):
    for encoding in encoding_list:
        string=read_file(filepath,encoding=encoding)
        if string:
            return string

def taoBao_json_move():
    print("taoBao_json_move")
    dir_name=rf"D:\download"
    to_dir_name=rf"D:\taoBao"
    print(" from dir_name",dir_name)
    print("  to_dir_name",to_dir_name)
    for i in os.listdir(dir_name):
        # "D:\taoBao\taobao_ 杏仁_2023_2_6_8_43_5.json"
        if i.startswith("taobao") and i.endswith(".json"):
            abs_from_file=os.path.join(dir_name,i)
            abs_to_file=os.path.join(to_dir_name,i)
            if os.path.exists(abs_to_file):
                print("文件已存在",abs_to_file)
                continue
            shutil.move(abs_from_file,abs_to_file)  


def sch_24_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\24detail",startswith="school_24"):
    # "D:\download\school_24_detail_F6D395C961B601DEE0530A01001665F6_idx_34574.json"
    # dir_name=rf"D:\download"
    # to_dir_name=rf"D:\24detail"
    for i in os.listdir(dir_name):
        if i.startswith(startswith) and i.endswith(".json"):
            abs_from_file=os.path.join(dir_name,i)
            abs_to_file=os.path.join(to_dir_name,i)
            if os.path.exists(abs_to_file):
                print("文件已存在",abs_to_file)
                continue
            shutil.move(abs_from_file,abs_to_file)  
    print("to_dir_name",to_dir_name)


def file_like_move(from_dir_name=rf"D:\download",to_dir_name=rf"D:\24detail",startswith="school_24",ends_with=".json"):
    # "D:\download\school_24_detail_F6D395C961B601DEE0530A01001665F6_idx_34574.json"
    # dir_name=rf"D:\download"
    # to_dir_name=rf"D:\24detail"
    # os.path. 
    os.makedirs(to_dir_name,exist_ok=True)
    # os.makedirs(to_dir_name)
    for i in os.listdir(from_dir_name):
        if i.startswith(startswith) and i.endswith(ends_with):
            abs_from_file=os.path.join(from_dir_name,i)
            abs_to_file=os.path.join(to_dir_name,i)
            if os.path.exists(abs_to_file):
                print("文件已存在",abs_to_file)
                continue
            shutil.move(abs_from_file,abs_to_file)  
    print("to_dir_name",to_dir_name)

def starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\24detail",startswith="school_24"):
    file_like_move(dir_name,to_dir_name,startswith,ends_with=".json")
    # "D:\download\school_24_detail_F6D395C961B601DEE0530A01001665F6_idx_34574.json"
    # dir_name=rf"D:\download"
    # to_dir_name=rf"D:\24detail"
    # os.path. 
    # os.makedirs(to_dir_name,exist_ok=True)
    # # os.makedirs(to_dir_name)
    # for i in os.listdir(dir_name):
    #     if i.startswith(startswith) and i.endswith(".json"):
    #         abs_from_file=os.path.join(dir_name,i)
    #         abs_to_file=os.path.join(to_dir_name,i)
    #         if os.path.exists(abs_to_file):
    #             print("文件已存在",abs_to_file)
    #             continue
    #         shutil.move(abs_from_file,abs_to_file)  
    # print("to_dir_name",to_dir_name)


# mai 

def remove_tao_bao_dirs():
    taoBao_dir_name=rf"D:\taoBao"
    # for i in os.listdir(dir_name):
    #     # "D:\taoBao\taobao_ 杏仁_2023_2_6_8_43_5.json"
    #     if i.startswith("taobao") and i.endswith(".json"):
    #         abs_from_file=os.path.join(dir_name,i)
    #         abs_to_file=os.path.join(to_dir_name,i)
    #         shutil.move(abs_from_file,abs_to_file)  
    #         # move_file(abs_from_dir,abs_to_dir)
    #         # D:\taoBao

    # D:\taoBaoOut
    taoBaoOut_dir_name=rf"D:\taoBaoOut"
    # 'D:\\taoBao\\taobao_ 杏仁_2023_3_18_8_47_21.json'
    # res=os.removedirs('D:\\taoBao\\taobao_ 杏仁_2023_3_18_8_47_21.json')
    # print("res",res)
    for i in os.listdir(taoBao_dir_name):
        # if 
        # print(i)
        abs_json_dir_path_from=os.path.join(taoBao_dir_name,i)
        
        if os.path.isdir(abs_json_dir_path_from):
            abs_json_path=os.path.join(taoBao_dir_name,i,i)
            abs_json_path_to=os.path.join(taoBaoOut_dir_name,i)
            # shutil.move(abs_json_path,abs_json_path_to)  
            # print("abs_json_path",)
            # print(abs_json_path,abs_json_path_to)
            # os.remove(abs_json_dir_path_from)
            # os.remove(abs_json_dir_path_from)
            os.removedirs(abs_json_dir_path_from)
            print(abs_json_dir_path_from)

def taobao_move_out():
    taoBao_dir_name=rf"D:\taoBao"
    # for i in os.listdir(dir_name):
    #     # "D:\taoBao\taobao_ 杏仁_2023_2_6_8_43_5.json"
    #     if i.startswith("taobao") and i.endswith(".json"):
    #         abs_from_file=os.path.join(dir_name,i)
    #         abs_to_file=os.path.join(to_dir_name,i)
    #         shutil.move(abs_from_file,abs_to_file)  
    #         # move_file(abs_from_dir,abs_to_dir)
    #         # D:\taoBao

    # D:\taoBaoOut
    taoBaoOut_dir_name=rf"D:\taoBaoOut"
    # 'D:\\taoBao\\taobao_ 杏仁_2023_3_18_8_47_21.json'
    # res=os.removedirs('D:\\taoBao\\taobao_ 杏仁_2023_3_18_8_47_21.json')
    # print("res",res)
    for i in os.listdir(taoBao_dir_name):
        # if 
        # print(i)
        abs_json_dir_path_from=os.path.join(taoBao_dir_name,i)
        
        if os.path.isdir(abs_json_dir_path_from):
            abs_json_path=os.path.join(taoBao_dir_name,i,i)
            abs_json_path_to=os.path.join(taoBaoOut_dir_name,i)
            # shutil.move(abs_json_path,abs_json_path_to)  
            # print("abs_json_path",)
            # print(abs_json_path,abs_json_path_to)
            # os.remove(abs_json_dir_path_from)
            # os.remove(abs_json_dir_path_from)
            os.removedirs(abs_json_dir_path_from)
            print(abs_json_dir_path_from)


# 帮忙完善这个函数
# def to_file_path_name(filename:str):
#     """
#     任何不适合在路径上产生的字符都改为下划线 比如 / \ : * ? " < > | 空格等
#     """
#     filename=filename.strip()
#     filename = filename.replace(" ", "_")
#     # https://www.cnblogs.com/jjliu/p/11514226.html
#     filename = filename.replace(":", "")
#     return filename

def to_file_path_name(filename: str) -> str:
    """
    将文件名中不适合用作路径名的字符替换为下划线

    Args:
        filename: 文件名字符串

    Returns:
        新的文件名字符串
    """
    invalid_chars = rf'\/:*?"<>| '  # 定义所有不合法字符
    for char in invalid_chars:
        filename = filename.replace(char, '_')  # 将不合法字符替换成下划线
    return filename.strip()  # 去除首尾空格并返回新的文件名字符串

# def read_file_chars(filename,from_idx=99,chars_len=200,encoding='utf-8'):
#     with open(filename, 'r',encoding=encoding) as file:
#         file.seek(from_idx)  # 将文件指针移动到第100个字符的位置
#         chars = file.read(chars_len)  # 读取接下来的200个字符
#     return chars

def read_file_chars(filename,chars_len=200,from_idx=0,encoding='utf-8'):
    with open(filename, 'r',encoding=encoding) as file:
        file.seek(from_idx)  # 将文件指针移动到第100个字符的位置
        chars = file.read(chars_len)  # 读取接下来的200个字符
    return chars

import os
# "utf-8"
utf_8="utf-8"
# do_write=False
do_write=True
def create_file_with_directory(file_path,write_data,encoding=utf_8):
    if not do_write:
        return
    print(file_path)
    directory = os.path.dirname(file_path)  # 获取文件所在的目录
    if not os.path.exists(directory):
        os.makedirs(directory)  # 创建目录
    with open(file_path, 'w',encoding=encoding) as file:
        # 在这里写入文件内容
        file.write(write_data)

def check_and_create_file_parent_dir(file_path,):
    if not do_write:
        return
    print(file_path)
    directory = os.path.dirname(file_path)  # 获取文件所在的目录
    if not os.path.exists(directory):
        os.makedirs(directory)  # 创建目录


# # 示例使用
# file_path = '/path/to/directory/file.txt'  # 文件路径
# create_file_with_directory(file_path)


def convert_size(size_bytes):
    # 转换单位函数
    units = ["bytes", "KB", "MB", "GB", "TB"]
    unit_index = 0
    while size_bytes >= 1024 and unit_index < len(units) - 1:
        size_bytes /= 1024
        unit_index += 1
    size_formatted = f"{size_bytes:.2f} {units[unit_index]}"
    return size_formatted

# 调用示例
# filename = 'path/to/your/file.txt'  # 替换为你的文件路径
# result = read_file_chars(filename)
# print(result)


if __name__ == "__main__":

    # "D:\好活.txt"
    # move_file("D:\好活.txt",rf"D:\file")
    # file 
    # data=read_file("D:\好活.txt")
    # print(data)
    # abs_path_list=getAllFilesOfWalk(rf"D:\毕设")
    # for i in abs_path_list:
    #     print(i)
    # dir_name=rf"D:\download"
    # to_dir_name=rf"D:\taoBao"
    # taoBao_dir_name=rf"D:\taoBao"
    # # for i in os.listdir(dir_name):
    # #     # "D:\taoBao\taobao_ 杏仁_2023_2_6_8_43_5.json"
    # #     if i.startswith("taobao") and i.endswith(".json"):
    # #         abs_from_file=os.path.join(dir_name,i)
    # #         abs_to_file=os.path.join(to_dir_name,i)
    # #         shutil.move(abs_from_file,abs_to_file)  
    # #         # move_file(abs_from_dir,abs_to_dir)
    # #         # D:\taoBao

    # # D:\taoBaoOut
    # taoBaoOut_dir_name=rf"D:\taoBaoOut"
    # # 'D:\\taoBao\\taobao_ 杏仁_2023_3_18_8_47_21.json'
    # # res=os.removedirs('D:\\taoBao\\taobao_ 杏仁_2023_3_18_8_47_21.json')
    # # print("res",res)
    # for i in os.listdir(taoBao_dir_name):
    #     # if 
    #     # print(i)
    #     abs_json_dir_path_from=os.path.join(taoBao_dir_name,i)
        
    #     if os.path.isdir(abs_json_dir_path_from):
    #         abs_json_path=os.path.join(taoBao_dir_name,i,i)
    #         abs_json_path_to=os.path.join(taoBaoOut_dir_name,i)
    #         # shutil.move(abs_json_path,abs_json_path_to)  
    #         # print("abs_json_path",)
    #         # print(abs_json_path,abs_json_path_to)
    #         # os.remove(abs_json_dir_path_from)
    #         # os.remove(abs_json_dir_path_from)
    #         os.removedirs(abs_json_dir_path_from)
    #         print(abs_json_dir_path_from)

    # taoBao_json_move()
    # "D:\download\boss_detail_c38f11dd2d850c331XVz2d20E1NQ_idx_7.json"
    # "D:\download\zhiPin_page_1_python爬虫工程师.json"
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\zhiPin_page",startswith="zhiPin_page")
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\boss_detail",startswith="boss_detail")
    # "D:\download\24265_school_page_16.json"
    # sch_24_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\24detail",startswith="school_24")
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\24Ddata",startswith="24265_school")
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\kanZhunSalary",startswith="kanZhunSalary")
    # "D:\download\kanZhunSalary_https___www.kanzhun.com_firm_wage_0nxz2Nu4FVA~.html_idx=128.json"
    # look_front('D:\i-brain\ins_list/nowcoderAns_content_summary_2023_05_16_15_06_46.json')
    
    
    # front_chars=read_file_chars(rf'D:\i-brain\ins_list/nowcoderAns_content_summary_2023_05_16_15_06_46.json',from_idx=330)
    # pprint.pprint(front_chars)
    # "D:\download\nowcoder - 2023-05-29T114557.110.json"
    # python D:\proj\python\my_util_py_pub\file_util.py
    # "D:\BaiduSyncdisk\zhiHuGet_如何进行职业规划与职业发展？.json"
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\nowCoderFile",startswith="nowcoder - ")
    # starts_with_file_json_move(dir_name=rf"D:\BaiduSyncdisk",to_dir_name=rf"D:\zhiHuGetJson",startswith="zhiHuGet_")
    # "D:\BaiduSyncdisk\kaoBianLinkGet_undefined (18).json"
    # "D:\BaiduSyncdisk\zhihu_ans_五分钟的毕业设计答辩需要写哪些内容？.json"
    # "D:\BaiduSyncdisk\taobao_python_2023_5_12_9_3_15.json"
    # starts_with_file_json_move(dir_name=rf"D:\BaiduSyncdisk",to_dir_name=rf"D:\kaoBianLink",startswith="kaoBianLinkGet_")
    # starts_with_file_json_move(dir_name=rf"D:\BaiduSyncdisk",to_dir_name=rf"D:\zhihu_ans",startswith="zhihu_ans")
    # starts_with_file_json_move(dir_name=rf"D:\BaiduSyncdisk",to_dir_name=rf"D:\taobao",startswith="taobao_")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\taobao",startswith="taobao_")
    # "D:\download\zhihu_ans_代写真的会去举报学校吗_.json"
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\zhihu_ans",startswith="zhihu_ans_")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\boss_detail",startswith="boss_detail_")
    # "D:\download\boss_detail_828e2bb32bdae73f1n190960GVFS_idx_0 (1).json"
    # "D:\download\wget_https___gitee.com_starplatinum111_GenerateQRCode.sh"
    # "D:\download\nowcoderAns_idx_2 (3).json"
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\school_24",startswith="school_24_")
    # "D:\download\school_24_detail_PyYWMZpPnznggP7MGhCUkW_idx_18.json"
    # "D:\download\nowcoder (99).json"
    # "D:\download\nowcoderAns (5).json"
    
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\school_24",startswith="school_24_")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\nowcoderAns",startswith="nowcoderAns")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\nowcoder",startswith="nowcoder")
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\wget_https",startswith="wget_https__")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\wget_https",startswith="wget_https__")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\kaoBianLinkGet",startswith="kaoBianLinkGet")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\zhiHuGet",startswith="zhiHuGet")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\fangTianXia",startswith="fangTianXia")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\xhs_https",startswith="xhs_https")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\我爱我家_https",startswith="我爱我家_https")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\链家_https",startswith="链家_https")
    starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\xhs_note",startswith="xhs_note")
    # "D:\download\链家_https___hz.lianjia.com_zufang_rs%E6%96%B0%E5%AE%89%E5%A4%A9%E8%8B%91_.json"
    # "D:\download\xhs_note_https___www.xiaohongshu.com_explore_646b60730000000013032b65.json"
    # "D:\download\我爱我家_https___hz.5i5j.com_zufang_o3__%E7%BB%BF%E5%9F%8E%E8%BF%90%E6%B2%B3%E9%83%A1_.json"
    # "D:\download\xhs_https___www.xiaohongshu.com_explore_keyword=java (2).json"
    # "D:\download\fangTianXia_https___hz.zu.fang.com_house_i32-s31-kw%b9%cf%c9%bd_.json"
    # "D:\download\zhiHuGet_常用的后端开发语言有哪些？.json"
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\douBanHtml",startswith="douBanHtml")
    # starts_with_file_json_move(dir_name=rf"D:\download",to_dir_name=rf"D:\bilibili_html",startswith="https___www.bilibili")
    # "D:\download\kaoBianLinkGet_undefined (7).json"
    # "D:\download\https___www.bilibili.com_correspond_1_a8f25574ed7d12e7e0d5a0149c81910c249523e12fce31c5f65413a419313d527bd9c783e34793fc58e51772cb7421e3250415f3cf5797f56c0db29f13de67462270467497d07447dac0ce80ee41795fd1c8a44921a2d1a4f92a3530a4b1.html"
    # "D:\download\douBanHtml_https___movie.douban.com_subject_35213072__from=subject-page.html"
    file_like_move(from_dir_name=rf"D:\download",to_dir_name=rf"D:\wget_https",startswith="wget_https__",ends_with=".sh")
    file_like_move(from_dir_name=rf"D:\download",to_dir_name=rf"D:\bilibili_html",startswith="https___www.bilibili",ends_with=".html")
    file_like_move(from_dir_name=rf"D:\download",to_dir_name=rf"D:\douBanHtml",startswith="douBanHtml",ends_with=".html")
    file_like_move(from_dir_name=rf"D:\download",to_dir_name=rf"D:\csdn_https",startswith="csdn_https",ends_with=".html")
    # "D:\download\csdn_https___blog.csdn.net_m0_47096428_article_details_129293259.html"